home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 4_0 / NOFLICKE / MBARMENU.C < prev   
C/C++ Source or Header  |  1990-12-27  |  2KB  |  92 lines

  1. #include <MenuMgr.h>
  2. #include <WindowMgr.h>
  3.  
  4. extern Boolean notDone;
  5. extern MenuHandle AppleMenu, FileMenu, EditMenu, FlickerMenu, Flicker1Menu, Flicker2Menu;
  6. extern Boolean flickerEnabled;
  7. extern Boolean flic1Enabled;
  8. extern Boolean flic2Enabled;
  9.  
  10. void SetupMenus ()
  11. {
  12.     CheckItem (FlickerMenu, 1, flickerEnabled ? true : false);
  13.     CheckItem (FlickerMenu, 4, flic1Enabled ? true : false);
  14.     CheckItem (FlickerMenu, 5, flic2Enabled ? true : false);
  15. }
  16.  
  17. void DoMenuCommand (mCmd)
  18.     long mCmd;
  19. {
  20.     short menuID = HiWord (mCmd);
  21.     short menuItem = LoWord (mCmd);
  22.     GrafPtr curPort;
  23.     char str[256];
  24.     Handle h;
  25.     WindowPtr fWPtr;
  26.     
  27.     switch (menuID) {
  28.         case 128:    /* apple menu    */
  29.             if (menuItem == 1)
  30.                 ShowAbout ();
  31.             
  32.             else {
  33.                 GetPort (&curPort);
  34.                 GetItem (AppleMenu, menuItem, str);
  35.                 h = GetNamedResource ('DRVR', str);
  36.                 OpenDeskAcc (str);
  37.                 SetPort (curPort);
  38.             }
  39.             
  40.             break;
  41.         
  42.         case 129:    /* file menu    */
  43.             if (menuItem == 1)
  44.                 notDone = false;
  45.             break;
  46.         
  47.         case 130:
  48.             if (fWPtr = FrontWindow ()) {
  49.                 if (((WindowPeek) fWPtr)->windowKind < 0) {
  50.                     SystemEdit (menuItem-1);
  51.                 }
  52.             }
  53.         
  54.         case 131:
  55.             HiliteMenu (0);
  56.             switch (menuItem) {
  57.                 case 1:        /* no flicker enable/disable    */
  58.                     flickerEnabled = !flickerEnabled;
  59.                     EnableMBarPatch (flickerEnabled);
  60.                     break;
  61.                 
  62.                 case 2:        /* redraw menu bar    */
  63.                     DrawMenuBar ();
  64.                     break;
  65.                 
  66.                 case 4:        /* enable/disable flicker 1    */
  67.                     flic1Enabled = !flic1Enabled;
  68.                     if (flic1Enabled)
  69.                         EnableItem (Flicker1Menu, 0);
  70.                     
  71.                     else
  72.                         DisableItem (Flicker1Menu, 0);
  73.                     
  74.                     DrawMenuBar ();
  75.                     break;
  76.                 
  77.                 case 5:        /* enable/disable flicker 2    */
  78.                     flic2Enabled = !flic2Enabled;
  79.                     if (flic2Enabled)
  80.                         EnableItem (Flicker2Menu, 0);
  81.                     
  82.                     else
  83.                         DisableItem (Flicker2Menu, 0);
  84.                     
  85.                     DrawMenuBar ();
  86.                     break;
  87.             }
  88.     }
  89.     
  90.     HiliteMenu (0);
  91. }
  92.